home *** CD-ROM | disk | FTP | other *** search
/ Language/OS - Multiplatform Resource Library / LANGUAGE OS.iso / gnu / smaltalk.lha / smalltalk-1.1.1 / mstcomp.h < prev    next >
C/C++ Source or Header  |  1991-09-12  |  2KB  |  73 lines

  1. /***********************************************************************
  2.  *
  3.  *    Declarations for the byte code compiler.
  4.  *
  5.  ***********************************************************************/
  6.  
  7. /***********************************************************************
  8.  *
  9.  * Copyright (C) 1990, 1991 Free Software Foundation, Inc.
  10.  * Written by Steve Byrne.
  11.  *
  12.  * This file is part of GNU Smalltalk.
  13.  *
  14.  * GNU Smalltalk is free software; you can redistribute it and/or modify it
  15.  * under the terms of the GNU General Public License as published by the Free
  16.  * Software Foundation; either version 1, or (at your option) any later 
  17.  * version.
  18.  * 
  19.  * GNU Smalltalk is distributed in the hope that it will be useful, but WITHOUT
  20.  * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 
  21.  * FITNESS FOR A PARTICULAR PURPOSE.  See the GNU General Public License for
  22.  * more details.
  23.  * 
  24.  * You should have received a copy of the GNU General Public License along with
  25.  * GNU Smalltalk; see the file COPYING.  If not, write to the Free Software
  26.  * Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.  
  27.  *
  28.  ***********************************************************************/
  29.  
  30.  
  31. /*
  32.  *    Change Log
  33.  * ============================================================================
  34.  * Author      Date       Change 
  35.  * sbyrne     2 Sep 89      added descriptor support
  36.  *
  37.  * sbyrne     2 Sep 89      Moved common compiled method structure definition
  38.  *              here, so that the interpeter could share.
  39.  *
  40.  * sbyrne     1 Jan 89      Created.
  41.  *
  42.  */
  43.  
  44. #ifndef __MSTCOMP__
  45. #define __MSTCOMP__
  46.  
  47. #ifndef __MSTINTERP__
  48. #include "mstinterp.h"
  49. #endif
  50.  
  51. struct CompiledMethodStruct {
  52.   OBJ_HEADER;
  53.   OOP        descriptor;
  54.   MethodHeader    header;
  55.   OOP        literals[1];    /* actually, literals followed by bytecodes */
  56. };
  57.  
  58. extern OOP        thisClass;
  59. extern Boolean        declareTracing;
  60. extern Boolean        emacsProcess;
  61.  
  62. extern void        compileMethod(), executeStatements(),
  63.             installInitialMethods(), setCompilationClass(),
  64.             invokeInitBlocks(), compiledMethodAtPut(),
  65.             setMethodDescriptor(), 
  66.             setCompilationCategory(), copyCompileContext(),
  67.             initDefaultCompilationEnvironment();
  68. extern OOP        compiledMethodAt(), getMethodDescriptor(),
  69.             methodNewOOP();
  70. extern Boolean        validMethodIndex();
  71.  
  72. #endif /* __MSTCOMP__ */
  73.